﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using FacturacionII.Modelo;
using FacturacionII.Interfaces;
namespace FacturacionII.Clases
{
    class clsGiro
    {
        facturacionEntities objFacturacionEntidades;

        public clsGiro() { }
        
        public ArrayList CargarDatosGridView()
        {
            ArrayList lista = new ArrayList();
            objFacturacionEntidades = new facturacionEntities();
            var query = from g in objFacturacionEntidades.giro
                        orderby g.descripcion ascending
                        select new
                        {
                            CODIGO = g.id,
                            DESCRIPCION = g.descripcion                                                    
                        };

            foreach (var datos in query)
            {
                lista.Add(datos);
            }
            return lista;

        }      

        public ArrayList BuscarDatosGridView(string descripcion)
        {
            ArrayList lista = new ArrayList();
            objFacturacionEntidades = new facturacionEntities();

            var query = from g in objFacturacionEntidades.giro
                        where g.descripcion.Contains(descripcion)
                        select new
                        {
                            CODIGO = g.id,
                            DESCRIPCION = g.descripcion
                        };
            foreach (var datos in query)
            {
                lista.Add(datos);
            }

            return lista;
        }
                
        public void Guardar(string descripcion, int usuario)
        {
            objFacturacionEntidades = new facturacionEntities();
            giro gir = new giro
            {
                descripcion = descripcion,                
                id_usuario = usuario,
                fecha_registro = DateTime.Now
            };

            objFacturacionEntidades.AddTogiro(gir);
            objFacturacionEntidades.SaveChanges();
        }

        public void GuardarCambios(int id, string descripcion, int usuario)
        {
            objFacturacionEntidades = new facturacionEntities();
            giro gir = objFacturacionEntidades.giro.FirstOrDefault(
                a => a.id == id);
            gir.descripcion = descripcion;
            gir.id_usuario = usuario;
            objFacturacionEntidades.SaveChanges();
        }

        public void Eliminar(int id)
        {
            objFacturacionEntidades = new facturacionEntities();
            giro gir = objFacturacionEntidades.giro.FirstOrDefault(
                a => a.id == id);
            objFacturacionEntidades.DeleteObject(gir);
            objFacturacionEntidades.SaveChanges();
        }

        facturacionEntities objFactuacionEntidades;
        public ArrayList CargarComboBox()
        {
            ArrayList lista = new ArrayList();
            objFactuacionEntidades = new facturacionEntities();
            var query = from g in objFactuacionEntidades.giro
                        orderby g.descripcion
                        select new
                        {
                            CODIGO = g.id,
                            DESCRIPCION = g.descripcion,
                        };

            foreach (var datos in query)
            {
                lista.Add(datos);
            }
            return lista;
        }
    }
}

